程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10939|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 ?* o5 p0 O1 [. F
#include <linux/init.h>$ k$ Y" A/ u8 ~. C  J4 e3 y
#include <linux/module.h>$ S$ E. h, Q' i# p
#include <linux/kernel.h>$ a0 z& O/ c# c6 I
#include <linux/types.h>
9 z& u6 H( U/ T2 K#include <linux/gpio.h>
1 X5 W& F7 `( {' {) k1 d8 M#include <linux/leds.h>
, i, y/ E" O( @+ h8 p9 B' [% E#include <linux/platform_device.h>; }. F$ d3 J$ ~, B' o
' f9 d; g4 r8 y) V2 |9 f% L
#include <asm/mach-types.h>( H# A4 O  z9 D/ |3 l9 l
#include <asm/mach/arch.h>
0 k3 G! i" C. h7 g& |( S#include <mach/da8xx.h>( q2 r7 h% t" Y; Q
#include <mach/mux.h>8 x7 E8 n& l$ a, v: ~

5 Z2 y3 s+ p' J# T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 j8 M: L1 ~+ O& s- i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- p4 }' d7 y: Z" q. ~- W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' L$ @$ F$ @9 A/ n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 |( V4 l2 @' [5 H+ h
- ?6 C6 d; ?5 ~8 G- Y& f8 o( a/* assign the tl som board LED-GPIOs*/
- X8 Y8 d, j& e4 y! J8 [! Xstatic const short da850_evm_tl_user_led_pins[] = {
  G1 q" x/ Y5 Z4 h+ k        /* These pins are definition at <mach/mux.h> file */
) T, t% U2 Z1 f5 a- {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 m# `, k  P5 d
        -1
8 Z7 q( ^* k( l9 [- Q};
7 @/ I. f" X' q2 m& h8 ?2 p$ c5 S4 j2 h6 S3 P
static struct gpio_led da850_evm_tl_leds[] = {$ ?* b" c. O& V) c* b
        {
1 Y% ]0 E4 n0 U4 o8 X- v2 \                .active_low = 0,
5 `; {& Z* U* ^                .gpio = DA850_USER_LED0,
8 Z3 R, {% v5 {* G, I. L* T% x$ c                .name = "user_led0",
: s; v) R, M1 e7 q                .default_trigger = "default-on",  c  C  O# i& Q/ P0 u/ Z$ t; G7 c
        }," p" I5 S" J3 H/ R
        {/ K( K1 D+ l& i7 l
                .active_low = 0,
) o2 H1 I: a9 f                .gpio = DA850_USER_LED1,
+ N2 M4 Y( ^  g4 M( p$ ^1 Y                .name = "user_led1",9 o6 Y# i8 B; I: n- \/ L0 v/ ^
                .default_trigger = "default-on",8 `& q8 K/ D) h7 _3 K& {8 V: y
        },
2 p& A4 z3 ?% C/ [: r4 \1 M        {
. G8 `' _+ O* S2 Y3 x( M$ T0 T                .active_low = 0,
# C9 w' |1 W+ Z3 v4 Q8 [. V9 ?6 o! }                .gpio = DA850_USER_LED2,+ q7 y/ a) Q  Y6 N9 l
                .name = "user_led2",
, ~- ~$ t% G6 G! ^                .default_trigger = "default-on",
9 R* u& |% X4 G: P1 v! Q5 D1 d        },  {# F9 z. B6 `/ s6 g
        {
/ t3 k: M! j: f1 E# S5 c                .active_low = 0,, B8 m, T3 ~. ?
                .gpio = DA850_USER_LED3,
0 Y/ f; E4 H: {' o& M                .name = "user_led3",8 m' _5 K5 O7 @% t* V* v
                .default_trigger = "default-on",
* y. g# ?% I: @; ~% N! w2 s8 j) ?% z  ^        },4 R+ L4 _. E: @4 \' x3 X* e5 b+ d
};
- p6 M$ U* ^" q6 \. [
* _3 D5 j, x+ W$ W" l# t5 n/ ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 r% s/ g* J! j
        .leds = da850_evm_tl_leds," V5 u, U& ]5 r3 x/ ?8 ^$ O% R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ P- D7 q9 O" c- k- D};
, j% g* I& g! h5 N: E( J% Y# v. ]/ z0 [2 K6 `
static void led_dev_release(struct device *dev)
/ X% a+ E# H$ A0 y: f{
6 a) Y' _; H7 u, U};
. g7 Q( X8 A0 B0 ^& N1 T9 D( [: [: ]; c( T( H
static struct platform_device da850_evm_tl_leds_device = {
1 ~6 I/ ~5 K8 x# s( ?        .name                = "leds-gpio",5 u: t# C0 H# ]
        .id                = 1,
& @) E2 ]# A" z% Q        .dev = {2 _( ~$ a0 t1 _. Z
                .platform_data = &da850_evm_tl_leds_pdata,
. i# ]- T: }' t8 ^                .release = led_dev_release,  e: {. F: [2 m
        }
* I$ _' O: ^: i, `};
+ _5 t) O& C0 u+ @2 ]$ g
- q. z- X/ K" G+ I" fstatic int __init led_platform_init(void)& y" ?1 e6 O9 C/ N; U1 i. p6 t
{* k& q$ D+ p5 u9 i# W6 A
        int ret;9 p, y8 Y3 O& |" _! O
#if 0
. c8 S( P1 h, d" U4 Y, t# g, y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 t0 V4 {; w9 E9 Y( L- z7 `        if (ret)" c2 q' c/ W/ j* `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. U+ U5 r4 k0 a) _                                "%d\n", ret);" \$ i! M) ~3 D9 P$ I  R! \
#endif, W- L. J! Z7 j: G) p. W! ^% [% H: N
        ret = platform_device_register(&da850_evm_tl_leds_device);& T7 ]+ X# d2 T: D# b& F: a
        if (ret)( j4 s- s  l8 K" ]$ a2 A9 n8 Y
                pr_warning("Could not register som GPIO expander LEDS");, W0 p4 |1 A3 H4 F1 \
        else
" t  B3 a+ X, ~/ X                printk(KERN_INFO "LED register sucessful!\n");
, d1 o. _6 s5 s2 T1 T
0 P1 T/ r5 W8 k        return ret;
8 f, u2 S( s. q9 a  }2 ^0 R1 b4 \}- a% @" o/ d; w) ^
1 D: c2 b- f! [  T
static void __exit led_platform_exit(void)
" x5 O  {8 O* c9 c! W{2 H8 w5 v; B  E2 d
        platform_device_unregister(&da850_evm_tl_leds_device);9 \$ D" m: E) l) m* T0 D
) G& i" Z& }+ u) ?6 J- n3 f2 ]* W
        printk(KERN_INFO "LED unregister!\n");2 x1 i  r+ t5 h+ I
}
8 D, Q0 i- X9 O1 s" {5 h# {: i9 ?# l' e* |" I; A- B# o! s- d5 x! b/ q
module_init(led_platform_init);6 u/ W) W* n5 y: w, v
module_exit(led_platform_exit);
. r5 J$ {+ ~8 c  n7 i3 ?
- T) ~8 e' h6 ^* s2 c! l- p5 mMODULE_DESCRIPTION("Led platform driver");
. p3 z1 ~, N+ tMODULE_AUTHOR("Tronlong");& z+ I0 x9 `( Z+ R$ w: A; v. E' r
MODULE_LICENSE("GPL");
6 J# B3 N6 d" {3 c1 m9 i6 M. G3 E& a( I4 J! Z5 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-4-3 00:40 , Processed in 0.041765 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表