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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" q9 A. E0 L: a#include <linux/init.h>/ X" X/ r3 y: O! q% m3 d/ o
#include <linux/module.h>7 y, |2 r3 o# C- c4 A+ z8 A$ M6 S
#include <linux/kernel.h>8 M! B* q+ J" A5 h* G0 R
#include <linux/types.h>
( s5 f" ?1 a; W4 C  _& @2 n3 }#include <linux/gpio.h>0 w7 ?9 f5 l1 T9 |+ c
#include <linux/leds.h>
/ Y/ i, u; c. }- c1 p7 |! Z#include <linux/platform_device.h>0 Z3 x, ~* X: r( [
9 {, o' y, U* m7 x
#include <asm/mach-types.h>) a6 C  i  h0 u
#include <asm/mach/arch.h>8 o# a( t' i- k/ O: q4 ?& B6 b
#include <mach/da8xx.h>2 @, w; q# K/ O- d
#include <mach/mux.h>% k3 _* l  x6 G8 i1 ^$ [, _- @
: j; x9 M, T& ?7 C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 f2 B' z- h' p, r#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 T, a+ f! Q2 ]8 N0 i7 E8 r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 C5 r$ g# q# Q, X- U2 C. H  a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ y$ a1 ?5 T* @; z6 A
' [/ S% C. z, i* k2 d/* assign the tl som board LED-GPIOs*/( [" G- I1 e& `7 _5 ]) K2 f6 N" c. s% d
static const short da850_evm_tl_user_led_pins[] = {% i" N0 T, o7 ]- ~
        /* These pins are definition at <mach/mux.h> file */
, T! A0 m7 ?6 C+ I& K+ |# {' g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ r$ e0 I& j" A9 i- U
        -1$ F* U1 y+ b; ~/ r
};
( j! _2 s( d/ p5 i7 I2 U+ C4 l3 s) L; z+ d3 r0 _  i/ E$ p
static struct gpio_led da850_evm_tl_leds[] = {
4 k" Q* k' ~# Q        {% ~* O( T$ d8 d% e" h' m; ^
                .active_low = 0,: G# C  @: g% ?0 A" k+ v
                .gpio = DA850_USER_LED0,: m; |; F1 G. C
                .name = "user_led0",) O/ b, P/ R( V$ b# S- F6 Q6 z
                .default_trigger = "default-on",
2 m' K; `3 c4 X, h; b3 R        },3 m5 F8 T# h7 i, Q5 Q
        {3 Q- R- B' v) `( r/ I
                .active_low = 0,- v2 v0 u+ [4 b* {5 j7 U
                .gpio = DA850_USER_LED1,
! r0 x1 K, \* ^" B+ @  i                .name = "user_led1",
% U; b& F- n+ X( C8 f: ^. h) x' Q                .default_trigger = "default-on",2 L8 z9 R. Y0 w* ~% _/ w/ z  S' ~# N: X; D
        },
# @4 H7 R* |5 x: h+ `# H        {
9 c& g, ^3 k3 H' m                .active_low = 0,
0 S  W6 C3 A! D. s5 |4 D9 x! j0 ~5 o                .gpio = DA850_USER_LED2,& T5 E2 x$ ^% Z3 F0 ]& c
                .name = "user_led2",) ^' J7 U0 h$ o( ^- Y1 Q
                .default_trigger = "default-on",
; _; z$ U9 d- e7 j3 Y0 y4 q        },. z# G& n6 f* @2 H4 G/ R; z: y- T
        {% X2 O5 G" a/ b3 L. J; l
                .active_low = 0," k4 f: |  n  c
                .gpio = DA850_USER_LED3,
* k4 w/ w) {, [1 [8 ?* s7 _                .name = "user_led3",9 w* t- k2 q3 c  z5 N1 i7 W
                .default_trigger = "default-on",
2 t) U" y( M' f! [5 }% G" ?  G0 |6 n        },
; y9 D5 |6 e0 t0 g; J: o/ t7 _};9 Q5 D" q: B  i# v& f6 r$ r" {

* d! L& I: t. H7 b% Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, b' O5 F$ R! x) C- O. z$ Z        .leds = da850_evm_tl_leds,
" ]' _8 ?) p. P! O+ U# s3 K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ P& r8 ?, H7 `! f' W5 k* V
};
; ]" c5 c8 _1 _
8 w9 m5 Y" W5 {' k* p$ z- Ustatic void led_dev_release(struct device *dev)1 V% h8 s$ u6 G3 S! k
{
- O! e$ D; m. }" M) v0 ]! ]/ }4 w};
5 _8 d9 j& p  n( l; H5 f# I1 U3 o- r+ X, M
static struct platform_device da850_evm_tl_leds_device = {1 f0 A8 j2 a4 z& n. V
        .name                = "leds-gpio",. H" o2 t5 y9 X  t# r- y+ G
        .id                = 1,
  t- q, v/ R' X        .dev = {' `: a+ b3 u( J6 `5 [1 W0 x9 ?
                .platform_data = &da850_evm_tl_leds_pdata,- w; s% o; b5 o# s- ~8 f1 G8 g# q
                .release = led_dev_release,
% b' z* J9 c% ?2 D        }
" d- @+ i% c: {" f};
1 N" ^5 C1 h. a& t2 a" P' Q
8 s% S1 O( r, G% pstatic int __init led_platform_init(void). }. n2 L  q1 ]  ^
{
8 _  X; ]$ B* u1 A& T        int ret;3 [. k. S- H3 ]) ~6 b4 p& {% W
#if 0* v! m4 t, g$ r& \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; w7 M- G% [+ k7 j" s* S
        if (ret)
$ f: n2 L% D; Z) [! E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ l3 M1 p3 W) l  W5 h# A
                                "%d\n", ret);
0 u( C6 W( b& S; }0 f; U#endif
- _5 O  E3 R" c% d        ret = platform_device_register(&da850_evm_tl_leds_device);4 U6 d7 t, a, \
        if (ret)- ~. g3 |0 E0 B: `8 F* p' H/ t
                pr_warning("Could not register som GPIO expander LEDS");2 l; ]6 G+ w1 W( G
        else
9 R7 g9 ?$ p/ `) l) B                printk(KERN_INFO "LED register sucessful!\n");, l% r. N8 d1 h; D  W  D
1 H- Q6 e1 L/ f0 d; E
        return ret;
4 ]$ J) j5 K% O4 _& ~; A' ^7 C}" I5 X4 [. J' e# R, v  R

' r! D+ U4 Q2 R" j. Jstatic void __exit led_platform_exit(void)
' r$ P! @& Q% i" M  s7 X{
) R8 @% u: G- B+ A/ g% z        platform_device_unregister(&da850_evm_tl_leds_device);4 H: S/ b. A+ ]+ B- ?% k

* o1 `* U% U& s        printk(KERN_INFO "LED unregister!\n");
3 v$ \6 g' h: L( t+ _4 J}5 P# U* [9 U$ W3 M7 z2 j

7 N3 Y: c6 R2 e' |9 wmodule_init(led_platform_init);& o9 F3 K/ }2 \
module_exit(led_platform_exit);
8 w+ B8 O7 j: D6 ^, o  g! J
1 }0 T* p3 h" AMODULE_DESCRIPTION("Led platform driver");! ^. Q# `7 p3 l, ]" g% m! K
MODULE_AUTHOR("Tronlong");
# S  |. p) [6 |/ F2 EMODULE_LICENSE("GPL");
4 u7 }- f% \( y3 a5 Z7 @/ k; \* b+ m. f. i! c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-6 13:01 , Processed in 0.039752 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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