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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) w* |5 [8 B* s% J
#include <linux/init.h>% t, M0 A6 V6 s2 E3 o, K! a  D
#include <linux/module.h>, ^: d3 g+ c1 L' ~" |  P/ k$ i
#include <linux/kernel.h>
: D9 |$ a& m( n5 E8 d" ^0 l#include <linux/types.h>
3 \2 l  u7 e! z" h" C( x3 |+ M: c#include <linux/gpio.h>" k9 g2 y5 z* y7 }
#include <linux/leds.h>5 M" i1 q8 R$ h8 ^# B' E
#include <linux/platform_device.h># x+ w# n) Y6 m3 `' r
3 y# D! g& l- O& N
#include <asm/mach-types.h>/ [) A2 d0 M0 z8 W9 n
#include <asm/mach/arch.h>
+ Z# k2 m% F1 [0 d#include <mach/da8xx.h>. E" h! v# E. B4 P
#include <mach/mux.h>
1 m% ~; l& p9 y2 o9 F' N+ n/ W6 [4 J6 K$ n4 U; \" }% j* ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 ?' Z5 M$ z; e1 x! D, [7 Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 i. q3 ^0 m) i7 q6 c- D& @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& B4 x! o# x+ g; [# e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% T; g; C2 L! u  j5 j# h! U. Z) I/ w0 @7 P0 Q4 {5 i4 s. l
/* assign the tl som board LED-GPIOs*/
( ~) z" `, T( c# p+ O- Z  G+ Lstatic const short da850_evm_tl_user_led_pins[] = {
; A% P! d2 Y/ j. A! ?3 h        /* These pins are definition at <mach/mux.h> file */
& P* a0 [) g- f* N9 S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' ~9 {* @  x1 B. U( P        -1
4 Q5 q  V5 N' u" ^; ?" ]};) Y% t! ]5 S2 F7 J+ k: ^- \0 ~# |

( B/ Z3 q$ r( ~/ m# `% I7 w+ L: {static struct gpio_led da850_evm_tl_leds[] = {% G( X5 u4 R  E3 p% f
        {
! G' S; r& C2 Z5 ^( c! v  e                .active_low = 0," W, v5 O3 Y+ A0 F  ^
                .gpio = DA850_USER_LED0,0 C. q. y' A+ a* V. L" b' Q
                .name = "user_led0",+ L9 @6 e+ ~+ ?5 o5 {% x
                .default_trigger = "default-on",
' b: [6 Q% Y3 M% g/ {( Y2 @        },* [6 T2 j# U  z- u3 Q4 y6 w
        {
" G4 R3 m/ B' A2 Z: a; ?                .active_low = 0,1 e% Q: ^& ?) C# y3 f+ L
                .gpio = DA850_USER_LED1,0 W9 _4 V  o  T9 j3 y5 o0 j
                .name = "user_led1",
9 U3 h, |6 R! r* n4 L9 ?& k                .default_trigger = "default-on",; g. `% c' n* }9 m. L
        },
5 X& G  A/ K* h: x, i        {7 e6 f& E6 Q- X$ Z  {& S" Q- ^
                .active_low = 0,6 e8 j! g6 }% S
                .gpio = DA850_USER_LED2,
& {  F! C  R1 V( u5 x                .name = "user_led2",
! y& {1 t; I0 Q3 F2 E5 T                .default_trigger = "default-on",3 Y. k* r  s$ S: \1 I4 u( x: W5 O
        },. t! o3 j" u, j( s( L' u, Y: r4 J
        {& T  H3 g8 X) I- g, i. L8 K- B
                .active_low = 0,4 r" f0 m' V# Q, u' b6 K: Z8 m$ o8 _
                .gpio = DA850_USER_LED3,
! b  |! h# s. g4 G% q  U                .name = "user_led3",2 v! }: N# H" L" A/ n$ H# }
                .default_trigger = "default-on",- X' R9 n' ]7 ^  o( Z" R
        },5 m8 ^7 `" U' D6 B1 E) \
};
9 g, g# `( I( K1 x3 Q4 ~; l/ u
- l& r* T) r; H3 x+ tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# j$ c! G1 F6 `  q        .leds = da850_evm_tl_leds,% m3 e7 \+ ]% l! M4 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 S& @( r" B1 {2 L& U5 H};) N! Z7 r8 `, N) P

& c: R! Y: M6 o2 g9 v" Z: P* Mstatic void led_dev_release(struct device *dev)6 ]/ D/ i/ n5 u: O$ b
{! I$ i# t1 {; v$ V) d8 U
};0 d. ~! `1 z. }* Z5 A

- i; T/ X" u: l& Xstatic struct platform_device da850_evm_tl_leds_device = {9 [0 A$ z( ~, ]7 ~
        .name                = "leds-gpio",
% Z: ~# L5 P# H: u8 ]        .id                = 1,
1 J+ l) J: f* l0 r7 j) E' h" T" m) [        .dev = {  x; u. ?# b% w( v/ m
                .platform_data = &da850_evm_tl_leds_pdata,+ P, \* m/ M7 s( ^( Q
                .release = led_dev_release,
9 e4 C( T0 z! K5 M1 I, K        }
& q0 v" X+ g7 S( W( M};8 L) A) V- T! K4 Q% `$ a

0 k6 B. B) s# j9 Lstatic int __init led_platform_init(void)
6 w: Z: w1 _! _( o/ J{
8 I$ H$ |: Q% i$ b$ m        int ret;
' ?" p2 I1 u% u. g#if 0
/ G7 b8 u# P6 |" Q" e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. {# k( d0 V9 w& _! V: P1 f8 P
        if (ret)2 J, }$ y0 I& J- Q; ~- Q4 A! K% h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 S8 r( q2 I& E, k# A, d& h                                "%d\n", ret);) @( ^* E- x; x4 M1 a" h4 s
#endif: \+ A  C3 M2 n
        ret = platform_device_register(&da850_evm_tl_leds_device);0 y3 K! t: k# L+ G: D/ w3 _# S
        if (ret)
0 K! b8 W5 g7 l, Z* ]                pr_warning("Could not register som GPIO expander LEDS");$ f1 }- [+ }7 n
        else+ B; t( H) v; |1 k  T! o
                printk(KERN_INFO "LED register sucessful!\n");
/ ^# k& Q" w9 @! G8 Y1 U
+ q- G+ W: [( i) M  l! r2 _        return ret;
8 ?# C. U+ T  v% y6 S}/ i( P1 ]  @% o- W7 b
6 `4 H# R+ p. j! v. K
static void __exit led_platform_exit(void)+ E2 [0 g+ C3 A- [) E
{0 X+ d2 K4 j+ W: y& E9 \1 D
        platform_device_unregister(&da850_evm_tl_leds_device);
( Q5 I$ r# P* D: B: t6 @4 j: {- ?
        printk(KERN_INFO "LED unregister!\n");
9 z% v: ~6 S3 u/ ^, f: m1 M}
6 n2 r7 q2 g! n& w- {" V5 P4 p+ ]
/ A' [- O4 ^' Y5 j4 }6 Zmodule_init(led_platform_init);
2 b& ]3 C" Z, f+ v. J$ Y6 g  d% u* omodule_exit(led_platform_exit);4 A  ^- g. n$ ~5 i% f. L' m- l/ P
% n; d0 Y. a9 f& C+ y- a/ l5 s& i
MODULE_DESCRIPTION("Led platform driver");
: M8 O' S" o% q% UMODULE_AUTHOR("Tronlong");
  @  _. B4 T; R* w  o- ?MODULE_LICENSE("GPL");
2 X) q1 U' X3 ^2 Y) W& R5 ^4 h
+ h) t/ C! K8 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 23:14 , Processed in 0.041663 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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