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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ f) [5 b1 Q3 M( Z$ R, ~
#include <linux/init.h>
, b' ^2 M! M, H+ g, Y0 K#include <linux/module.h>
1 t5 ~5 f5 Q/ w7 ^4 N#include <linux/kernel.h>1 j1 z0 Z/ r, f' c9 e7 `
#include <linux/types.h>) Q- n+ Q# }2 Y# S$ \; [3 [+ P
#include <linux/gpio.h>
7 m% D6 f1 z. K* h! ]8 k, F$ [#include <linux/leds.h>: B9 \- ~1 D. q, K5 S3 g
#include <linux/platform_device.h>7 X& O/ R; S3 F9 ~" F/ B  v

, }# S8 P% r" k! B#include <asm/mach-types.h>
' P% s/ W- n6 S#include <asm/mach/arch.h>( e/ p, ~4 c; D. _8 T
#include <mach/da8xx.h>( H1 B- {  g2 \2 c; L
#include <mach/mux.h>
, C6 }' b$ l/ ?& ~; j
& k. e" i/ k) M  H0 b1 A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ q0 }  d2 o1 ~/ M: |0 X6 |% _& d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), K& O* G1 D% O' t( V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( t% y! e1 f2 L7 D/ k- O  A# Q. g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 x) B2 b* N2 e% Z* T+ o! i$ O" e3 R, U
7 @! e! c. F" y9 \9 u- e5 @/* assign the tl som board LED-GPIOs*/
  i. \) c3 s4 e8 d( Bstatic const short da850_evm_tl_user_led_pins[] = {
8 S: I* c1 @. A2 h/ [        /* These pins are definition at <mach/mux.h> file */8 ^( o0 U  _, n% C
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," k0 E+ R2 {4 ~" h2 M& J
        -1
  {0 T7 C8 k8 G+ B, |# U% n, n};7 B$ X9 U: d1 ?% I9 z* J) k
' c( V" X" p( Q! a
static struct gpio_led da850_evm_tl_leds[] = {$ ^+ B4 `7 r. Z( u& Y- n2 k
        {
" A  r8 K! Q4 B9 m4 z8 I& Z: s: u                .active_low = 0,
% c* s9 M) [5 F% G1 d( A                .gpio = DA850_USER_LED0,! [! j0 U' E5 w1 r: k; g% D; @
                .name = "user_led0",( C1 q$ a$ O3 u: z& n
                .default_trigger = "default-on",
; K6 M# N! e# r# o, H$ ^% P& y        },
8 C2 L& Q1 N7 H  M2 y& U        {2 `5 Y7 \4 W- J2 x5 v' o" Z2 @2 G
                .active_low = 0,
  ]* E3 _: d% m                .gpio = DA850_USER_LED1,( _$ _- i4 z* x2 q% E
                .name = "user_led1",# p. M& O% c6 w1 W1 b
                .default_trigger = "default-on",
8 o4 J+ Q; f# }* K' l  l7 T' e        },
8 h+ N2 @, [/ w* p2 u$ e: t        {2 P! u6 D- P* u  ^
                .active_low = 0,
% M2 P" |+ d& X; t                .gpio = DA850_USER_LED2,7 I7 @1 d% W- v1 ^! u
                .name = "user_led2",6 g( W& Y8 g, D. r
                .default_trigger = "default-on",: D/ I* w8 G& K$ P7 F
        },
- j/ g; h4 b* g0 B        {8 L. W3 R7 i* c0 `
                .active_low = 0,7 K" \3 {3 j0 }" e+ ~
                .gpio = DA850_USER_LED3,
7 j! Y" O/ m+ c" Y' m8 G                .name = "user_led3"," k1 z4 c4 S' W7 T8 z: _, C
                .default_trigger = "default-on",
5 n: U3 H7 ~0 G" B" t        },
9 i; Z2 e1 J2 [" q: J8 p# T& o};
5 Z6 a- \! Y3 S( l# ^1 V3 d' ~8 u# z) O3 Z1 J) V; C* `0 ~8 Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 i$ e) G" G; i/ D0 r: T        .leds = da850_evm_tl_leds,$ A6 {$ w8 g- o9 b" M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 q0 e2 i  q/ z7 ]) x};
" s$ o$ Y9 E* `: h$ p
% @" [2 ^* F. Qstatic void led_dev_release(struct device *dev)  d4 {& O0 Y+ k+ A* W2 K
{
8 u. b1 I# M0 Z' @# H  I: Z};+ O  N" f' f1 H7 P
0 K* V" k/ j" J
static struct platform_device da850_evm_tl_leds_device = {
% O! l9 M2 M0 m( v        .name                = "leds-gpio",1 I+ X& Q4 m' c
        .id                = 1,
* G1 k' T8 _6 a/ j' w0 T! g' |        .dev = {
- O2 L6 i% g. D                .platform_data = &da850_evm_tl_leds_pdata,
" {* |2 q3 ^' _' R6 ~                .release = led_dev_release,: ^) v' Q* M( l, T$ L
        }
/ s, X, r" d" F};, y( a. i  K9 [, l2 u1 m

! a% i  X4 e6 C- ?5 ]) sstatic int __init led_platform_init(void)
0 N$ @' ?6 [$ q5 n{
* ?% m: t* q* z4 ~6 v        int ret;
' n, x! T2 `' \5 {: ~$ F#if 0" a& l8 r! O: u9 _! G4 q2 R( p  Z  D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' ^* G% h' y$ m4 F# n- J* T
        if (ret)
8 Z5 t" r2 K+ g& \& {, O* \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 U# I( D2 g* L" }                                "%d\n", ret);
4 S7 l! U! W- e. q, k2 n2 C8 A#endif3 z1 g# p& [0 s4 z% @) [; S
        ret = platform_device_register(&da850_evm_tl_leds_device);
: y& X& X3 F& p# [( _. ]. s1 E8 B2 c0 X9 K        if (ret)
# G/ f2 r  _8 f2 Q' K                pr_warning("Could not register som GPIO expander LEDS");& j& ]" L+ z: F! u  t. z; k- Q
        else
7 m9 x9 v- N! W+ X+ O                printk(KERN_INFO "LED register sucessful!\n");6 a4 w; i$ t6 A9 N
* K" y; m. D( X& Z9 Y
        return ret;
/ O& Q$ ?/ ~  m3 P$ k* \5 g! g}: G; g/ j0 ~: b* s4 O

5 b$ h, C4 m5 [3 D$ @$ Qstatic void __exit led_platform_exit(void)" B4 Q5 _* e4 d4 A4 t
{+ {3 k3 s' g% ?3 R, T, s* T
        platform_device_unregister(&da850_evm_tl_leds_device);* v" g+ s, a# K" `. N3 G6 J
, |. a, _* `6 i9 t- g0 o
        printk(KERN_INFO "LED unregister!\n");
" ^) p1 N9 A6 H4 K4 e; C' z- I) D! K}# X; s$ y6 j: f1 X5 g# p

3 Y4 `8 L. |4 \9 [" h6 T' Tmodule_init(led_platform_init);
+ L, y% B' m: t. n+ k4 Fmodule_exit(led_platform_exit);
' S# C6 |- s" o6 S4 |
8 P( {5 P' S( O. }9 vMODULE_DESCRIPTION("Led platform driver");
2 p7 z% F5 M: S8 d5 g) C% J+ q3 F2 uMODULE_AUTHOR("Tronlong");
3 ]( ], x" [' ], iMODULE_LICENSE("GPL");. }2 F: ~2 Z. k0 L/ v

( s/ v/ a6 }+ i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-9 14:40 , Processed in 0.042565 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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