程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' ^2 h" H1 J( g
#include <linux/init.h>7 S$ ]! D! ~; L' a
#include <linux/module.h>$ l! d3 T+ f! }% t- G: ^
#include <linux/kernel.h>
) [+ |) w+ U9 W2 D! g, f: Y: y#include <linux/types.h>- d/ r; B& q) c) I4 d
#include <linux/gpio.h>* h  a% O) a! K' O1 W
#include <linux/leds.h>6 `+ B/ q/ p9 E3 @4 \/ r( L
#include <linux/platform_device.h>, E* q& |4 i3 v6 {  {
3 j, |4 m+ ]8 J) F% Y% {
#include <asm/mach-types.h>
4 P7 Q* `7 z6 E% L, A$ u: Z3 f. ]#include <asm/mach/arch.h>
- h4 `; y& ?9 X* N% S& j) H. D#include <mach/da8xx.h>
, T& A  p- v0 A% ?& I/ U#include <mach/mux.h>
7 j+ L+ u& ]% `- N! I+ Z2 i
1 Y6 I# g1 H; f2 S' l#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& q9 k" M7 X# V- A" ]$ h+ f5 _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 ^. S# N: g  Q# x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 Y1 m6 d! q# S#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), [( q& p$ t% t) Z5 R

+ m  k- h* ]) ?& h  b/* assign the tl som board LED-GPIOs*/& P7 a$ f$ F2 K- h- M9 y. n+ Z  ^
static const short da850_evm_tl_user_led_pins[] = {+ H' J7 x7 C2 I9 b/ ^  [
        /* These pins are definition at <mach/mux.h> file */9 M9 b" x8 K- r' A1 g  k- B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 k8 S9 J: i% `8 {$ B! |) i9 \$ u        -1
* ~8 C  |! b7 S" p4 l% Z};) y9 _% l9 A: K4 u. D3 @: @
  t# z/ P+ u4 Y1 |8 k3 E
static struct gpio_led da850_evm_tl_leds[] = {* M8 K" M" H  p
        {
1 [7 W% ~1 }2 o; N                .active_low = 0,) ~, x4 u4 J1 N
                .gpio = DA850_USER_LED0,( e. P; C2 d* C; ]  w/ q
                .name = "user_led0",, G" ^" H+ q( P% K) Q
                .default_trigger = "default-on",
) N- c* r  a- U+ A* b5 P        },
9 `- C, L# i; Y        {
4 E) P* B$ ]- `# d% R                .active_low = 0,
/ {; ~% Y, N" _8 Y1 R; L                .gpio = DA850_USER_LED1,- h2 T) ?% G1 u
                .name = "user_led1",5 P1 F- i9 M" A( h* k
                .default_trigger = "default-on",
3 S% Z# Z9 d7 j0 v/ L: l$ `+ g        },8 O+ c. S2 P" {6 `
        {2 c1 M; Q, A" L  ]- V) O7 X( W
                .active_low = 0,3 l- g7 t- N  s  j( J( z
                .gpio = DA850_USER_LED2,
8 v& I; s# D. A+ N                .name = "user_led2",4 ^6 u2 L; y3 ~4 a
                .default_trigger = "default-on",$ z- H  g3 E, M1 b* U" h  Z
        },
% }* }! g) e' h% m& k/ b/ y7 A! E7 u        {
, T( p4 X- q2 `; {  G! ?                .active_low = 0,1 ~) ^! @" S  h0 R, s& y
                .gpio = DA850_USER_LED3,& d- K8 X$ y" c# p
                .name = "user_led3",+ u8 S( @8 y  M; u9 V
                .default_trigger = "default-on",
$ _: Y- y- r$ y4 n/ w( y        },
! m0 |; i' m6 z" k};
. f4 i  O5 X9 ~( K, t: b2 \7 ~
9 t1 i! w1 X5 F9 Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: D. s3 J# f: q( f
        .leds = da850_evm_tl_leds,
/ l9 H: z% @- M+ I4 N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 k3 }$ n& v, p5 H- d6 {/ J
};! M2 G: P. ~$ i( q6 W. E9 G
% C+ `+ S- U# W$ T. Z9 Z8 ]# a
static void led_dev_release(struct device *dev)
0 a, q& r9 m9 \+ a{- s! |3 I# k7 h/ p8 Q
};
' r0 |% _: {5 I3 }4 T' h4 N) j" L  [1 ?& M
static struct platform_device da850_evm_tl_leds_device = {# u# u! A- ^% y. i$ M: w2 d
        .name                = "leds-gpio",
: T. _8 H- D; H        .id                = 1,8 C2 c1 T% y7 c0 U: Q8 K
        .dev = {+ b. t& z/ V7 T( M6 f+ F7 [
                .platform_data = &da850_evm_tl_leds_pdata,& M3 a/ L- E2 y
                .release = led_dev_release,
: j# }5 s  |8 P& }5 G        }# z7 a1 n, |0 c1 h5 O: a
};3 C( ~3 e# i7 B4 m

7 x, g* I1 K# j' R2 Gstatic int __init led_platform_init(void)) Y) e4 @" a3 J6 h! H
{
1 a4 k; H. ]  g  l0 W# a' x        int ret;0 \7 J9 i' O$ k: ?  w: J
#if 08 g, c0 m" }, g6 E/ P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" a- p6 B# P4 A/ H        if (ret)6 A6 t5 W7 B, B! q& K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 Z$ I( S. E$ Q6 c$ M  a! k
                                "%d\n", ret);
6 \0 U, ?8 P6 m( Z# g# ~& ^#endif
9 B( O& O% `7 g        ret = platform_device_register(&da850_evm_tl_leds_device);
! l8 B: m! K% i        if (ret)/ [/ S& x2 L4 q
                pr_warning("Could not register som GPIO expander LEDS");0 Z" A$ F0 a! d2 \
        else
  e- }% M( L% {7 Q                printk(KERN_INFO "LED register sucessful!\n");
. z# \& u* _1 {) ^( T+ v
7 q8 e, v0 Z1 c        return ret;: [+ c, b# r1 r& @; }. t
}
& G: U6 O+ Q0 P( g6 W7 d* a# L" A4 z/ w% M: s& x) P# ?
static void __exit led_platform_exit(void)( x& F: @! m+ `  ^' E
{
' j  L$ X: P3 y* N        platform_device_unregister(&da850_evm_tl_leds_device);
$ X, Z$ n* u" ^( Y/ b. T# A; N/ H$ }; |. y7 R# d/ @
        printk(KERN_INFO "LED unregister!\n");
1 X7 P. `$ \# m# ?}3 ?3 |6 R6 L( X, c
' \/ x8 ]3 \4 B: {% t# x: o2 w
module_init(led_platform_init);* m5 G: F# ^1 |% G4 H" U% T
module_exit(led_platform_exit);
- c6 R& J# I$ k0 O/ ?1 v: Q7 ?: k& j" Z  {  x; M$ J. g. r
MODULE_DESCRIPTION("Led platform driver");0 r  @9 K" l9 Z, H5 e
MODULE_AUTHOR("Tronlong");
* K& m: P! Z' h8 n( A6 n7 DMODULE_LICENSE("GPL");2 O) {8 }" g4 d5 K8 i

8 j8 A: r* L9 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 03:59 , Processed in 0.040437 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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