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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! {2 P% m' I5 E% }' _1 a: r) T
#include <linux/init.h>1 Q- U- y- K; I; j! d8 \) v5 }$ X
#include <linux/module.h>
9 |/ m( J9 ?# S* X#include <linux/kernel.h>
2 C" {: d& ?5 ~" s. g5 t9 s#include <linux/types.h>
, X1 f* Y7 f0 b3 u; D#include <linux/gpio.h>  j3 a6 W& P2 L# o& p, f: ]) B% z$ v
#include <linux/leds.h>. N2 m, m6 R- I  o3 [) ^
#include <linux/platform_device.h>
) o& q8 e: P! R) k+ P6 T' Y
  t3 H5 K4 S/ p7 R+ I' M#include <asm/mach-types.h>& X, n) U* V- F. |2 s
#include <asm/mach/arch.h>! P+ `. |; w! c! g# x# M; `
#include <mach/da8xx.h>
* X1 \% X$ p' `# Z7 n9 U#include <mach/mux.h>
8 p- x4 o% W( J8 y, T4 z. {7 f3 E; L4 }7 ~0 E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. C+ l- A: E' V8 G& X" P& D' I7 h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% k7 Y  p6 ?+ x2 w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 U9 d- D$ |2 X/ |2 Z6 C1 o7 F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 g6 V; p- Q; I' n/ A- l
: y0 l6 l: v7 s5 z/ Q
/* assign the tl som board LED-GPIOs*/
3 r. q# H- c1 E0 Ostatic const short da850_evm_tl_user_led_pins[] = {
: ?; _2 W, l4 ^' w6 K; J; B" p        /* These pins are definition at <mach/mux.h> file */: D/ [2 W( B: {0 K9 F' [# X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' h  E, i: u9 t6 e* J% p/ h        -1
( z$ z0 G( y& a7 Q# M6 \1 e3 n};( j: @1 o2 W. b

( R4 Y! E0 S% I. c5 m& q; o9 r4 Nstatic struct gpio_led da850_evm_tl_leds[] = {
2 M6 A) N) ^9 V/ t( u        {- L5 O' G! K- b' j& _4 C
                .active_low = 0,8 R7 l( S$ O8 w$ \/ D
                .gpio = DA850_USER_LED0,
. d* c4 F' `( [                .name = "user_led0",+ S5 P/ i0 |( }6 }
                .default_trigger = "default-on",, v. [7 _$ N7 ^/ Z/ `0 ?+ m
        },
* j1 D/ w( M1 G$ G' Z1 W        {9 e( @! S/ T. s2 }( D; p' g5 V
                .active_low = 0,
$ x- ^5 }0 a! c: U! `- Y3 \                .gpio = DA850_USER_LED1,9 i/ P8 e7 s# t0 D, ~+ [5 N
                .name = "user_led1",
  [8 o0 w* x' F! |* Z1 O( {                .default_trigger = "default-on",
0 }6 |0 l! ^' g1 v; ]- N. J        },4 ^, T! {8 Q+ g/ e7 {  q- J/ i7 y
        {; s6 @$ [) y4 x. F8 D, t
                .active_low = 0,* r( I5 L" ^! U. J
                .gpio = DA850_USER_LED2,; @9 E; J2 J9 p) A4 K! w
                .name = "user_led2",
; w. D" s/ ], b, m                .default_trigger = "default-on",
6 L/ d- }* {8 G        },3 L8 g6 t: W! _* _( ?0 v4 C
        {
( `+ Y3 H: l7 Q  t& A                .active_low = 0,
2 H; y* K' S" v) _+ s0 B& u                .gpio = DA850_USER_LED3,: i8 C$ S( W4 ^" d$ ^
                .name = "user_led3",' S/ S" L' v& R# o1 I! c. s" N
                .default_trigger = "default-on",9 k' R# S4 x" ^3 E# H" {
        },
! z% t: ]' M3 O7 A5 c  N};2 w- b" e+ m& k

  A/ q+ l1 |2 m5 U1 h1 X3 v# Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& D4 d) {  Q, p# F; D
        .leds = da850_evm_tl_leds,
2 S2 _; g7 c1 [7 {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 L: L' w. {8 F4 s+ c) I# W};
6 P0 J3 L. |7 W2 X# ^$ R7 a& Q# ]7 t+ p" x  v0 Q! M
static void led_dev_release(struct device *dev)% e. m0 I  P$ M  U( |" u
{
- I7 y) y1 }; J+ h. s};
$ A# P$ y8 x2 g' h( Z& i3 A8 f- l3 Y: _( z& z- M/ ]7 M9 s
static struct platform_device da850_evm_tl_leds_device = {
4 p  m" b8 s4 G( P0 C5 ?) Z! K% B4 I4 v        .name                = "leds-gpio"," U& ^+ a8 N% L
        .id                = 1,2 r1 j7 Z+ q, @3 S
        .dev = {
4 q1 [' L! c+ U% ]5 y& B                .platform_data = &da850_evm_tl_leds_pdata,7 q5 h; e* [0 ?# @+ C* f
                .release = led_dev_release,
5 B  i* ]# B# B. R  Q        }  X; ]8 x& {, U4 Q( L* O8 h
};
& g5 O" L4 e$ e: Y6 `4 h" G, p% T$ H4 s
static int __init led_platform_init(void)
2 o  h' U( E; @/ L{
: i, V3 p# P9 r8 j  }        int ret;
6 A9 B" }) }2 Y( r, t2 W* t#if 0
: ?1 C" {8 u3 A% B. H        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. m4 C& W6 ?! \
        if (ret)6 A! j" A2 d3 }
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# t" ~, _: C  e. Y3 W. a                                "%d\n", ret);) O5 \# }0 z- v0 j# s
#endif. s' Y/ H7 o+ t0 u
        ret = platform_device_register(&da850_evm_tl_leds_device);- b2 P. o# @/ U4 B3 }) z: L
        if (ret)7 G6 l8 f8 M. _0 U
                pr_warning("Could not register som GPIO expander LEDS");
, H# L: y" s; y. ^/ {( z# t  G: W        else3 c3 u1 B8 H/ ?/ i
                printk(KERN_INFO "LED register sucessful!\n");" _1 K! h1 S  h- ]6 g
1 t) p0 q: g4 `- \! g% _0 J6 Y
        return ret;
5 }5 ?" I, o9 {% o3 y}
0 F+ ?6 w( R  c5 D' N
$ r1 ~. N0 H$ B# h% c& `) l) Istatic void __exit led_platform_exit(void)" y' [8 E' }  N
{
8 u  r" e0 ]. d; t; R* g        platform_device_unregister(&da850_evm_tl_leds_device);  l; N" s6 W: K; Z5 ?

: ?2 d, d& K; B        printk(KERN_INFO "LED unregister!\n");
/ }9 ~8 B5 r6 M4 R+ T: {, @& O}$ T6 D+ D" @" Q3 P
* W4 A+ r# l2 R  B
module_init(led_platform_init);4 u- l* B) _$ E& n) j$ e$ v
module_exit(led_platform_exit);; m5 V& ]) {9 Y5 D  i/ [/ p
5 a+ h9 ^6 Y. |/ `
MODULE_DESCRIPTION("Led platform driver");
4 z0 A$ c! I; wMODULE_AUTHOR("Tronlong");
0 G) r; V9 ~1 |, ?" b5 N" B: C' ]MODULE_LICENSE("GPL");3 Y* ?& O" E9 P6 t7 E; ~( D

6 z1 [9 D1 z7 E" c7 o- c) k. Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-15 22:41 , Processed in 0.043838 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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