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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, }2 s, ^' K( O
#include <linux/init.h>
* Q' e! T+ M6 g/ g% g8 B#include <linux/module.h>
$ W7 t+ F, L% m9 d( Y) C5 T#include <linux/kernel.h>) Z, }% `8 _) @
#include <linux/types.h>
; {/ v" v/ g# m) `; @#include <linux/gpio.h>
2 a0 W& z1 J" ?" V: u#include <linux/leds.h>9 G5 [! J- E+ x+ M5 s
#include <linux/platform_device.h>
' ^5 y1 i, a) ?# ?, z5 |/ X& B+ c2 {0 B& o- \, L9 Q
#include <asm/mach-types.h>6 z3 j6 k) o$ i
#include <asm/mach/arch.h>7 L) L2 _3 l. Z
#include <mach/da8xx.h>& W, M0 A# e/ N" z2 E* ^7 G
#include <mach/mux.h>, d0 Y0 y; h8 O- ~8 a

3 ?0 V7 R' }8 g% f9 E( k9 @0 R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- G9 T5 i) Z8 l8 [' [6 F* q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 ~( A+ W2 T+ q7 f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) x/ {& S! ~3 W+ R% P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). w9 y" v* B" N% Z- n
% U  J/ F8 p: m3 N0 g- }5 D  M; E
/* assign the tl som board LED-GPIOs*/
2 W$ X5 J+ A5 X  Astatic const short da850_evm_tl_user_led_pins[] = {
7 E9 x* p% K( G6 o- |        /* These pins are definition at <mach/mux.h> file */& n* C. R" J& c2 V: N/ f+ t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' V! r* T: F% C
        -1
& O3 [4 ]8 B! q& G' u9 |1 S4 U};# ^* }9 N) Q) B) R# e  E% I

& [3 A9 a; @9 G# r0 |0 @, Zstatic struct gpio_led da850_evm_tl_leds[] = {, [" L$ O" V: p+ H0 I/ z. a' `+ ^
        {) E, W# i5 P  \  f$ v' H7 X( O
                .active_low = 0,
+ W! x2 X" }% B0 N+ w, T                .gpio = DA850_USER_LED0,
1 j! k- {7 ?% E/ e                .name = "user_led0",
" d2 y0 m1 t! i                .default_trigger = "default-on",$ }% O" A$ D6 m0 R& R$ t4 o# q
        },
1 l/ h: ]' e- M9 w$ R/ q' C        {
) P( n- O2 e/ q4 T3 s                .active_low = 0,
# y. p& f! Q3 r$ \, y                .gpio = DA850_USER_LED1,
2 v8 D) q" q  `" E1 |0 l                .name = "user_led1",
; @' U/ t" D6 g                .default_trigger = "default-on",
( ]7 B3 n' F8 h4 Y        }," K9 o' ^* w: O- s
        {8 [1 h" ]. i' g; h: F( e
                .active_low = 0,  u5 J& @. }3 T' z
                .gpio = DA850_USER_LED2,
4 u" y& A2 u( a  g+ Q" A                .name = "user_led2",
# i, F: |& \% j" n. ]; u0 }                .default_trigger = "default-on",
7 `$ [7 W, ?: Y8 X  }: {9 [$ o+ D% }4 K        },- X4 M( C$ s% c0 l1 {4 I4 Z. A
        {
) r9 L4 _7 D. S: M  d# Q4 U                .active_low = 0,9 n7 P/ [/ E+ D" D! ^, j
                .gpio = DA850_USER_LED3,1 S& @2 l2 M+ N, Y5 e* z
                .name = "user_led3",% n0 G& ?4 R5 W0 Z5 d
                .default_trigger = "default-on",! P5 g9 P; n2 r; G+ Z& E1 V
        },5 P. k' T9 q! o5 o/ f
};0 g% J" c) t" i; V7 i% }" V6 E

5 v% _; y/ s  j8 I5 i* Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! q. r1 H7 @5 @) p2 E4 v, Y. }6 D
        .leds = da850_evm_tl_leds,& Z" s  S: N0 m2 b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ {& x5 c" S& Q0 N' D$ K
};' V+ N3 D) L: R3 m
( |" _! n, p4 Z! Q: c
static void led_dev_release(struct device *dev)/ g* X2 E$ m7 ?- c! Q2 G
{3 d  _- v+ T/ `7 A! b& Y" h. `9 c
};
: P* v. `% Z1 ~! W
: O0 t; v0 I3 L) P& p+ d+ l& O3 zstatic struct platform_device da850_evm_tl_leds_device = {6 }/ `5 F% h* h9 @% D; Z
        .name                = "leds-gpio",
3 s. H8 {- Q9 z3 `3 J        .id                = 1,- z, G1 M% B9 K2 R. H  `3 e/ C
        .dev = {
. ^. h+ U, {7 R0 A                .platform_data = &da850_evm_tl_leds_pdata,
! u: U* l1 U  _2 k/ C                .release = led_dev_release,- U. T; H7 W/ {9 t! ]! J* [
        }
8 o$ }+ K8 E$ S- B- b' J$ g};; N& M* M* G9 v' B

8 p% \$ N, U0 ~3 r0 `7 _0 xstatic int __init led_platform_init(void), m4 X+ m6 V! [+ v- M6 V6 v
{' a: H* G3 d* {$ d( A, O( f5 {* w
        int ret;
8 {/ d3 R" r# V* g#if 0% k& }3 E9 {- Y1 V7 T8 f, W  H* C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, }' J1 v" K* a% E        if (ret): u+ M: e& `0 {+ Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& V* s4 K! W1 }6 z- p                                "%d\n", ret);8 a% e0 I9 K+ \9 T7 p% M" X
#endif
" C$ g2 v' `. V9 E0 @        ret = platform_device_register(&da850_evm_tl_leds_device);: Z4 ?0 T2 t$ T( n, i$ R1 {5 Q" D
        if (ret)( f+ k( ~0 G9 |5 k, d
                pr_warning("Could not register som GPIO expander LEDS");
  f5 `, E# H& p  w5 I# V  v        else/ ^! i/ c' w3 V5 P- r( i( J  k2 c( P  w
                printk(KERN_INFO "LED register sucessful!\n");5 o; V" }  H* t( U1 l( a. a

' y6 |' s& C+ Y. P8 R3 l8 y        return ret;% T4 X" Y  `# s" W, l" M% y! Q
}6 a5 _) d; y, w* U% S
) ?  Z) S& U9 X4 T! x4 k) |
static void __exit led_platform_exit(void)
8 U7 E' {% K1 {{
# \. q; d5 p3 B5 `0 b. D        platform_device_unregister(&da850_evm_tl_leds_device);
& Z5 v9 y  a  z4 G- U7 N
) j* F# m4 }* m; y( e+ L, v        printk(KERN_INFO "LED unregister!\n");
6 ?4 q/ G( M5 F0 B% i* N# S; B}, j* w0 f! h- c) V. O$ H3 C& L

- S8 z6 X; w6 p; I+ v- @- Fmodule_init(led_platform_init);
9 J' k( l- P% L, t* ?module_exit(led_platform_exit);% P9 f4 z% N4 _3 r" ?

5 r6 \3 x, ?  d# QMODULE_DESCRIPTION("Led platform driver");+ h6 r. K# Q/ f0 \, ]) O
MODULE_AUTHOR("Tronlong");
, I" Q1 j1 j1 C! BMODULE_LICENSE("GPL");$ I5 {; Q# u: o4 x% w7 \; r% `

$ p  ^$ @, ?% Z) Z* M* `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 01:02 , Processed in 0.041310 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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